自從團隊開始實施敏捷開發,我們就使用「User Story」撰寫需求規格,說實話,這麼多年下來,我們對於怎麼寫需求已經有了一套不錯的做法了(至少我們是這麼認為的),但我總是會有個疑問:我們真的寫對了嗎?是不是還有改進的空間?
於是,我們報名了敏捷三叔公的課程——【如何寫出人人有共識的需求-範例描述需求篇】,希望從課程中了解我們目前的寫法是否有在正確的路上,以及學習更多寫需求規格的方法。
接下來的內容,我將根據自身的實戰經驗以及課堂上所學,為大家整理出幾個重點;希望這些方法能像一個好的GPS導航一樣,幫助大家在撰寫需求時少走彎路、事半功倍!
撰寫 User Story 的目的,就像是在告訴一個好故事——你需要清楚傳達角色的需求 ,並讓開發團隊理解他們正在打造的功能究竟有什麼價值 。然而,每個人對文字的解讀,就像看電影一樣,有時候導演的意圖和觀眾的解讀大相徑庭;一句話,當你以為它簡單明了,實際上卻可能因為每個人不同的經驗與理解力,解讀出完全不一樣的意思。
這時候,「範例描述」 就像是給劇本加了分鏡表一樣——它能進一步將商業邏輯轉化成具體的場景,減少需求解讀上的偏差,且讓需求更易於理解,還讓開發團隊少了一些「這到底是什麼意思?」的頭疼時刻。
1. Given-When-Then
通常用於描述行為或功能如何在特定條件下運作 ,這種格式清楚定義了前置條件(Given)、當事件發生時(When)以及期望結果(Then)。
這種格式讓團隊成員清楚知道在何種條件下應觸發什麼結果。
2. Table
適合當需求中有多組相似條件和結果 時使用,它能快速對比不同的輸入和輸出,幫助讀者快速掌握需求的變化。
輸入關鍵字 | 預期結果 |
---|---|
軟體工程師 | 顯示與軟體工程師相關的職務列表 |
空白 | 顯示所有職務列表 |
不存在的職位 | 顯示「查無此職務」提示 |
表格式的範例可以清楚呈現不同輸入情境下的期望結果,有助於開發與測試團隊快速參考。
3. Rule Base
適合用來描述更複雜的業務規則或條件下的需求 ,這種格式強調的是系統根據特定規則的行為,特別適用於有多種業務邏輯的情境。
這種格式有助於處理有多重邏輯或流程的需求 ,並將系統的反應具體規範下來。
範例描述方式 | 優點 | 缺點 |
---|---|---|
Given-When-Then | 結構化清晰,適合描述流程型需求。 | 不容易閱讀 |
Table | 對於需要處理大量數據或多種情況,可呈現不同條件的對應結果 | 無法詳細描述複雜的業務邏輯 |
Rule Base | 適合處理多重規則與變化的場景,有助於處理不同的商業規則 | 可能較為抽象且不結構化,較難快速理解。 |
這三種範例描述格式各有優勢,當你在撰寫 User Story 時,可視故事的內容、性質、難易度靈活運用 1~2 種方式 ,不僅能讓需求更清晰,還能減少大家在理解上的誤會,讓開發與測試過程更加流暢。
參考資料:
敏捷三叔公課程 – 如何寫出人人有共識的需求
阿塔的故事歲月之寫過無數故事